<?php
/**
 * Nordic Repository
 * 
 * LICENSE
 * 
 * The new BSD license is applied on this source-file. For further
 * information please visit http://license.nordic-dev.de/newbsd.txt
 * or send an email to andre.moelle@gmail.com.
 */

/**
 * Interface which has to be implemented in new adapters.
 * 
 * @category   Nordic
 * @package    Nordic_I18n
 * @copyright  2007 Nordic Development
 * @license    http://license.nordic-dev.de/newbsd.txt (New-BSD license)
 * @author     Andre Moelle <andre.moelle@gmail.com>
 * @version    $Id: Adaptable.php 3 2007-07-08 09:21:42Z andre.moelle $
 */
interface Nordic_I18n_Adaptable
{
	/**
	 * Returns the actual chosen language.
	 * 
	 * @param void
	 * @return string
	 */
	public function getLanguage ();
	
	/**
	 * Returns all possible languages.
	 * 
	 * @param void
	 * @return array
	 */
	public function getLanguages ();
	
	/**
	 * Checks whether the given language is possible.
	 * 
	 * @param string $language language to check
	 * @return boolean
	 */
	public function isValid ($language);
	
	/**
	 * Sets a new language.
	 * 
	 * If the language is invalid a "Nordic_I18n_Exception" will be
	 * thrown.
	 * 
	 * @throws Nordic_I18n_Exception
	 * @param string $language new language
	 * @return void
	 */
	public function setLanguage ($language);
}
?>